A Real-time Transfer Protocol (RTP) that controls the encoding, transmission, and decoding of real-time data, such as audio and video data, is known from [1]. According to [1], an RTP header contains a 16-bit sequential number that is incremented with each RTP packet. The sequential number enables the recipient to detect any packet losses occurring during transmission and to order the packets in their correct sequence. For data security reasons, a random number is used as the initial value for the first data packet. According to [1], an RTP header contains an option to identify the limits of data blocks in the data stream by setting marker bits.
What are termed interleaver blocks, whereby the data is read in an encoding device row-by-row into a matrix and column-by-column from the matrix, are known from [2]. The entire interleaver block is reassembled in a decoding device before the data contained in the block is used.
The use of redundancy information (also: redundancy) on the basis of which transmission errors can be compensated is known from [3]. Before being transmitted over a faulty transmission channel, data being transmitted (content data) is hereby additionally provided with redundancy information generated, using known methods, from the data being transmitted. The content data is then sent to a recipient on the transmission channel along with the redundancy information. On the recipient's side, it then is possible to compensate transmission errors in such a way that the content data is reconstituted based on the redundancy information. Known error correction methods are employed for this (see [4]).
A method for the unequal error protection (UXP) of data whereby error protection is varied within a data block by assigning the data different amounts of redundancy information is described in [5]. According to [5], a number of the data packets in a data block is variable and is indicated in a separate data field in the UXP header assigned to each data packet.
The printed patent specification U.S. Pat. No. 6,055,663 describes a method via which an improved error-robust multiplexing process is made possible.
Some data packets are lost when data is transmitted on faulty channels. This is particularly disadvantageous when also involving the loss of data packets which each include a marker bit indicating the limit of the data block. In this case, before being decoded the data packets will have to remain buffered until their positions within the individual data blocks or, as the case may be, the limits of the various data blocks can be reconstituted.
The present invention is therefore directed toward making it easier to reconstitute the limits of the data blocks.
Accordingly, method is disclosed for encoding a sequence of digital data for achieving the above-referenced directive. A portion of the sequence of digital data corresponds to a data block and includes several data packets. The data packets contain an identifier based on which the position of the data packet within the associated data block is determined. Each of the data packets further includes information relating to the data block width. Furthermore, at least one data packet per data block contains the identifier and at least one further data packet contains the information relating to the data block width. The identifier and the information relating to the data block width are transmitted alternately, particularly according to a predefinable repetition pattern, in a data field. The data is encoded taking the identifier into consideration.
The present invention is furthermore directed toward a method for decoding a sequence of digital data. A portion of the sequence of digital data corresponds to a data block and includes several data packets. The data packets contain an identifier based on which the position of the data packet within the associated data block is determined. Each of the data packets further contains information relating to the data block width. Furthermore, at least one data packet per data block contains the identifier and at least one further data packet contains the information relating to the data block width. The identifier and the information relating to the data block width are transmitted alternately, particularly according to a predefinable repetition pattern, in a data field. The data is decoded taking the identifier into consideration.
An advantage of the present invention is that, via the identifier, the positions of the received data packets within the associated data block can be immediately determined at the beginning of data transmission and/or when data packets are lost. The effort and expense required for data buffering being substantially reduced, it is consequently also possible to run a real-time application; for example, video telephony or any other multimedia application. The buffer for the data, thus, also can be significantly reduced in size in the decoding device or even totally dispensed with. Owing to the fact that only a single data field is required for transmitting the identifier and the information relating to the data block width, the amount of data to be transmitted is not increased in spite of the two functionalities in a single data field.
A development of the present invention is that the sequence of digital data includes a sequence of progressively encoded data (progressive data), such as progressively encoded images or image data streams, with its also being possible for the progressive data to be image data. Progressive data is temporally staggered in terms of its degree of detail, meaning that the image, for instance, is initially transmitted with a coarse resolution so that, although the image can be represented, its details are largely unrecognizable. Image refinements are thereafter transmitted step-by-step so that the image's resolution constantly improves as transmission progresses further.
In an additional development of the present invention, the data block includes redundancy information. This enables an error correction method to correct data errors occurring during transmission and to reconstitute the data.
Another development of the present invention is that a beginning and an end of the data block are determined on the basis of the identifier of the data packets.
An additional development of the present invention is that the number of data packets containing an identifier is predefined in such a way that every n-th data packet receives the identifier.
Another development of the present invention is that the number of data packets containing an identifier is predefined in such a way that the data field of every n-th data packet contains the identifier and some of the remaining data packets each contain the data block width in their data field.
In another development of the present invention, the predefinable number of data packets containing an identifier is every other data packet.
In an additional development of the present invention, the data block is an interleaver block. In the encoding device the data is hereby read, for example, row-by-row into the interleaver block and, for example, column-by-column from the interleaver block and then transmitted. If a data packet, which is to say a column of the interleaver block, is lost during data transmission, this data loss will be distributed over the rows of the interleaver block. If the data rows contain redundancy information, these errors can be corrected up to a certain number via an error correction method, with the amount of redundancy information directly influencing the number of errors that can be corrected.
An additional development of the present invention is that a sequence of the data blocks is identifiable, particularly based on a time stamp or a serial number. The time stamp is a digital identifier indicating, for example, the time at which an item of data, in this case the data block, was sent.
An additional development of the present invention is that the identifier for determining the position of the data packet within the data block is a sequential number. The sequential number is, for example, a serial number of the data packets. For data security reasons, a random number or a number “0” or “1” can be selected as the initial value.
In an additional development of the present invention, a Real-time Transfer Protocol (RTP) is used. RTP makes services available for transmitting real-time data, such as multimedia data. Such services include assigning time stamps and sequential numbers to data packets.
The sequential number of the RTP is used within the scope of the present invention to define the identifier for determining the position of the data packet within the data block.
An additional development of the present invention is that a method for unequal error protection, such as UXP, is used. Progressive data within a data block is hereby provided in each case, with a different amount of redundancy information in order to take into consideration the fact that the progressive data of a unit, such as an image, requiring to be represented, builds one set upon another, which is to say the different stages in the progression are to be taken into account in distributing the redundancy information. It is of practical advantage to provide a large amount of redundancy information at the beginning of the progressive data, while increasingly less redundancy information can be provided as the degree of detail increases. The number of data packets in a data block, what is termed the data block width, can vary per data block.
The length of the identifier preferably should be matched to that of the data field so that the same data field can be used for the identifier for determining the position of the data packet within the data block and for the data block width. If, for example, the data field for the data block width is 8 bits long and the identifier is determined from a 16-bit sequential number in the RTP header, then an 8-bit identifier can be generated from the 16-bit identifier by omitting the higher-value 8 bits.
A system for encoding a sequence of digital data is furthermore disclosed for achieving the present invention. Such arrangement provides for a processor unit embodied in such a way that a portion of the sequence of digital data is a data block and contains several data packets. The data packets contain an identifier based on which the position of the data packet within the associated data block can be determined. Each of the data packets further contains information relating to the data block width. Furthermore, at least one data packet per data block contains the identifier and at least one further data packet contains the information relating to the data block width. The identifier and the information relating to the data block width are transmitted alternately, particularly according to a predefinable repetition pattern, in a data field. The data is encodable taking the identifier into consideration.
A system for decoding a sequence of digital data is furthermore disclosed for achieving the present invention. Such arrangement provides for a processor unit embodied in such a way that a portion of the sequence of digital data is a data block and includes several data packets. The data packets contain an identifier based on which the position of the data packet within the associated data block can be determined. Each of the data packets further contains information relating to the data block width. Furthermore, at least one data packet per data block contains the identifier and at least one further data packet contains the information relating to the data block width. The identifier and the information relating to the data block width are transmitted alternately, particularly according to a predefinable repetition pattern, in a data field. The data is decodable taking the identifier into consideration.
Such systems are suitable in particular, for implementing the methods according to the present invention or one of their developments elucidated in the foregoing.
The present invention, or any development described in the foregoing, also can be implemented via a computer program product having a storage medium on which is stored a computer program that is capable of running on a computer and which carries out the present invention or development.
Additional features and advantages of the present invention are described in, and will be apparent from, the following Detailed Description of the Invention and the Figures.